package com.xqzgj.system.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 库存分析数据Mapper接口
 */
public interface StockAnalysisMapper {

    /**
     * 查询总库存量
     */
    Map<String, Object> selectTotalStock();

    /**
     * 查询本月入库量
     */
    Long selectMonthlyInStock();

    /**
     * 查询本月出库量
     */
    Long selectMonthlyOutStock();

    /**
     * 查询日期范围
     */
    List<String> selectDateRange(@Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 查询入库趋势数据
     */
    List<Map<String, Object>> selectInStockTrend(@Param("startDate") String startDate,
            @Param("endDate") String endDate);

    /**
     * 查询出库趋势数据
     */
    List<Map<String, Object>> selectOutStockTrend(@Param("startDate") String startDate,
            @Param("endDate") String endDate);

    /**
     * 查询入库出库对比数据
     */
    Map<String, Object> selectInOutComparison(@Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 查询各分类库存数量
     */
    List<Map<String, Object>> selectStockByCategory();

    /**
     * 查询变动类型分布
     */
    List<Map<String, Object>> selectTypeDistribution(@Param("startDate") String startDate,
            @Param("endDate") String endDate);

    /**
     * 查询变动类型趋势
     */
    List<Map<String, Object>> selectTypeTrend(@Param("startDate") String startDate, @Param("endDate") String endDate);
}